1. Field of the Invention
In one exemplary aspect, the invention relates to the fields of content storage and delivery over one or more networks, such as for example cable television or satellite networks.
2. Description of Related Technology
Modern content-based networks (e.g., cable television or satellite) provide their subscribers with a broad variety of content in a number of different formats (e.g., digitally encoded according to different encoding schemes, low- and high-definition, etc.) via a number of different delivery paradigms (e.g., broadcast, pay-per view, on-demand, etc.) and with various feature sets (e.g., premises digital recording or DVR, networked personal video recording, etc.). Each of these facets are now described in greater detail.
Digital Encoding
With the advent of digital communications technology, television program streams are now transmitted in digital format. For example, Digital Satellite System (DSS), Digital Broadcast Services (DBS), and Advanced Television Standards Committee (ATSC) program streams are uniformly digitally encoded or formatted according to a prescribed standard. One such prevailing standard is the Moving Pictures Experts Group 2 (MPEG-2) standard. The MPEG-2 standard specifies, inter alia, the methodologies for video and audio data compression and encoding, allowing for multiplexing multiple programs with different video and audio feeds in a transport stream traversing a single transmission channel. The digital receiver of a digital set-top box (DSTB) or other such device is then used to decode the MPEG-2 encoded transport stream, and extract the desired program therefrom.
In accordance with the MPEG-2 standard, video data is compressed based on a sequence of groups of pictures (GOPs), made up of three types of picture frames: coded picture frames (“I-frames”), forward predictive frames (“P-frames”) and bilinear frames (“B-frames”). Each GOP may, for example, begin with an I-frame which is obtained by spatially compressing a complete picture using discrete cosine transform (DCT). As a result, if an error or a channel switch occurs, it is possible to resume correct decoding at the next I-frame.
The GOP may represent additional frames by providing a much smaller block of digital data that indicates how small portions of the I-frame, referred to as macroblocks, move over time.
An I-frame is typically followed by multiple P- and B-frames in a GOP. Thus, for example, a P-frame occurs more frequently than an I-frame by a ratio of about 3 to 1. A P-frame is forward predictive and is encoded from the I- or P-frame that precedes it. A P-frame contains the difference between a current frame and the previous I- or P-frame.
A B-frame compares both the preceding and subsequent I- or P-frame data. The B-frame contains the average of matching macroblocks or motion vectors. Because a B-frame is encoded based upon both preceding and subsequent frame data, it effectively stores motion information.
Thus, MPEG-2 achieves its compression by assuming that only small portions of an image change over time, making the representation of these additional frames extremely compact. Although GOPs have no relationship between themselves, the frames within a GOP have a specific relationship which builds off the initial I-frame.
The compressed video and audio data are carried by continuous elementary streams, respectively, which are broken into access units or packets, resulting in packetized elementary streams (PESs). These packets are identified by headers that contain time stamps for synchronizing, and are used to form MPEG-2 transport streams. For digital broadcasting, multiple programs and their associated PESs are multiplexed into a single transport stream. A transport stream has PES packets further subdivided into short fixed-size data packets, in which multiple programs encoded with different clocks can be carried. A transport stream not only comprises a multiplex of audio and video PESs, but also other data such as MPEG-2 program specific information (sometimes referred to as metadata) describing the transport stream. The MPEG-2 metadata may include a program associated table (PAT) that lists every program in the transport stream. Each entry in the PAT points to an individual program map table (PMT) that lists the elementary streams making up each program. Some programs are open, but some programs may be subject to conditional access (encryption) and this information is also carried in the MPEG-2 transport stream, possibly as metadata.
The aforementioned fixed-size data packets in a transport stream each carry a packet identifier (PID) code. Packets in the same elementary streams all have the same PID, so that a decoder can select the elementary stream(s) it needs and reject the remainder. Packet-continuity counters may be implemented to ensure that every packet that is needed to decode a stream is received.
DVR, PVR and nPVR
Digital video recorders (DVRs) and personal video recorders (PVRs) are devices which record video content, in digital format, to a disk drive or other medium. The use of such devices is now ubiquitous, and they provide conveniences to TV viewers such as e.g., (i) allowing a user to record a program for later review, (ii) allowing a user to record every episode of a program for a period, and/or (iii) automatically recording programs for the user based on viewing habits and preferences. Further, the presentation of the recorded programming content can be manipulated by exercising rewind, pause, play, stop, and fast-forward functions hereinafter referred to as “trick mode” functions) in such DVRs and PVRs.
A network PVR (nPVR) is a form of a PVR which can store content on a remote network device instead of a local hard disk. The nPVR allows the user to perform the analogous DVR functions through use of a network entity or process, rather than a local DVR at the user premises, thereby ostensibly relieving the user of the burdens of ownership and maintenance of a DVR unit.
Numerous nPVR architectures exist. See, e.g., co-owned U.S. patent application Ser. No. 10/302,550, filed Nov. 22, 2002, issued as U.S. Pat. No. 7,073,189 on Jul. 4, 2006,and entitled “Program Guide and Reservation System for Network Based Digital Information and Entertainment Storage and Delivery System”, incorporated by reference herein in its entirety, which discloses one exemplary network architecture and functionalities for implementing nPVR service. Generally, nPVR systems employ Video on-demand (VOD) or similar architecture to provide content storage and retrieval in a network. Typical VOD architectures will be discussed in greater detail below.
Start-Over
So called “start-over” is a feature offered to some network users which allows the user to jump to the beginning of a program in progress without any preplanning or in-home recording devices (e.g., DVR). Start-over is enabled by a software upgrade to the existing video on-demand (VOD) platform, and to the installed base of digital set top boxes. In other words, the start-over feature utilizes an nPVR system to maintain content which users may request, and delivers content in a manner similar to VOD. The start-over system instantaneously captures live television programming for immediate, on-demand viewing. Start-over functionality is the result of MSO-initiated nPVR storage of broadcast programs in real time. In other words, the MSO determines which programs will be start-over enabled, and stores this content as it is broadcast to an nPVR which is accessible by the various client devices utilizing a mechanism similar to VOD (discussed below).
When tuning to a start-over enabled show in progress, customers are alerted to the feature through an on-screen prompt. By pressing appropriate remote control buttons, the program is restarted from the beginning. Under one type of approach, start-over enabled programs may only be restarted within the shows' original telecast window (i.e., during the time window set for broadcasting the program), and may not be restarted after the show has finished broadcast. Thus, the start-over feature generally functions as an nPVR for predefined content (i.e., content on a start-over enabled channel) during a predefined period (i.e., the broadcast window).
Co-owned, U.S. patent application Ser. No. 10/913,064, filed Aug. 6, 2004, and entitled “Technique for Delivering Programming Content Based on a Modified Network Personal Video Recorder Service”, incorporated herein by reference in its entirety, discloses exemplary network architecture and functionalities for implementing start-over service within a content-based (e.g., cable) network. As noted above, start-over services generally employ a VOD or similar architecture to provide content storage and retrieval.
VOD Systems
The provision of “on-demand” (OD) services, such as e.g., video on-demand or VOD, is well known in the prior art. In a typical configuration, the VOD service makes available to its users a selection of multiple video programs that they can choose from and watch over a network connection with minimum setup delay. At a high level, a VOD system comprises: (i) one or more VOD servers that pass and/or store the relevant content; (ii) one or more network connections that are used for program selection and program delivery; and (iii) customer premises equipment (CPE) to receive, decode and present the video on a display unit. The content is typically distributed to the CPE over a Hybrid Fiber Coaxial (HFC) or satellite network, which may include e.g., dense wave division multiplexed (DWDM), coaxial, wireless (e.g., satellite or millimeter wave), and other types of bearer media.
Several different network architectures have evolved for deploying VOD services. These architectures range from fully centralized (e.g., VOD servers at a central location) to fully distributed (e.g., multiple copies of content distributed on VOD servers very close to customer premises; i.e., at the network “edge”), as well as various other network topographies there between. Since most cable television networks today consist of optical fiber towards the core of the network which are connected to coaxial cable networks towards the edge, VOD transmission network architectures also consist of a mixture of optical fiber and coaxial cable portions.
While the architectural details of how video is transported in the core HFC network can be different for each VOD deployment, each generally will have a transition point where the video signals are modulated, upconverted to the appropriate RF channel, and sent over the coaxial segment(s) of the network Depending on the topology of the individual cable plant, this could be performed at a node, hub or a headend. The coaxial cable portion of the network is variously referred to as the “access network” or “edge network” or “last mile network.”
A typical prior art VOD architecture useful for prior art nPVR and start-over functionality comprises sending content through various staging and segmenting functions, then on to a VOD server. At the staging and segmenting functions, the content is spliced on valid GOP boundaries, or I-frames. The spliced content is then examined, and a reference data file is created to describe it. However, current splicing functions are often inexact due to the fact that the splicing is occurring on content running open GOPs; this ultimately leads to the creation of data files which relate to portions of the content that have been removed, or content streams having other artifacts or problems. The VOD server uses the data file as a guide to where the segments of the content are located, and constructs a content stream inserting secondary content (e.g., advertisements from an advertisement playlist) in-between the segments.
Associated with the VOD server is a cataloging entity, which maintains records regarding the content stored on (and available for streaming from) the VOD server. In many prior art systems, the cataloging entity is not equipped to manage data regarding the massive quantity of content stored therein. Further, as assets are removed from VOD availability, prior art cataloging entities are often unable to function as intended.
Exemplary nPVR System Utilizing VOD—
A typical prior art VOD architecture providing storage and access to content is given in FIG. 1a. This architecture is utilized for both user-initiated and MSO-initiated nPVR.
As illustrated, audio/video content is received to the MSO. The MSO sends the content to a staging processor 102 adapted to “stage” content for transmission over the network. The staging processor 102 is an entity adapted to prepare content for segmenting and/or for transmission to a VOD server 105 for streaming to one or more users.
Content is prepared for transmission and/or segmenting by processing through various staging processes, or software applications adapted to run on the digital processor associated with the staging processor 102. The processes effected by the staging processor 102 include, inter alia, at least one segmenting process 104. The segmenting process 104 divides the content video feed on valid GOP boundaries, or I-frames.
Segmenting the video feed at the segmenting process 104 results in content which is segmented based on a schedule. The segmented content is then examined by a business management process (BMS) 107. The management process 107, inter alia, creates a data file regarding the segmented content. The data file gives metadata regarding the content and “points” to the segmented portions of the content on the disk. However, current segmenting processes 104 of the type illustrated in FIG. 1a are often imprecise (e.g., splice points not precisely on the correct frame boundaries), and may result in instances where the management process 107 refers to content that is no longer part of the file, and/or contains other “glitches”. These conditions cause problems with video received by a user including e.g., “macroblocking” (an effect akin to pixelation), and/or segments of the video stream having no video (i.e., being blank).
Other issues associated with prior art segmentation techniques include overflow or underflow of buffer levels and “closed” GOPs. In an MPEG buffering scheme, certain past and future pictures need to be maintained in a buffer. When switching streams it is possible to overflow or underflow this buffer if the levels are not managed correctly. A GOP in MPEG2 refers to the distance between reference frames that can be completely rendered with only the information in that frame; similar to a still photo compression such as JPEG. Other frames in between the reference or I-frames have some forward or backwards references. It is possible in MPEG to reference frames beyond the I-frames. If a stream is cut where a further frame beyond the next I-frame is needed, visual errors can be introduced.
Once the management process 107 has created a data file for the content, it is sent to a VOD server 105. As described in greater detail subsequently herein, the VOD server 105 stores the content and/or data on hard disks; the VOD server 105 streams the content from these disks as well. The VOD server 105 is also sent a playlist of advertisements.
The VOD server 105, therefore, will receive the segmented content as well as a file indicating where the various portions of the content are and in what order they should be arranged; the VOD server also receives advertisements for insertion into the segmented content.
FIG. 1b is illustrative of a simplified prior art segmented content file 120 and advertisement playlist 130. As noted above, the content is segmented according to a schedule thus resulting in any number (n) content segments 122. The advertisement playlist 130 comprises some number (x) of advertisement segments 132. The number x of advertisement segments 132 may be e.g., equal to the number n of content segments 122; alternatively, the number of advertisement segments 132 may be one more (n+1) or one less (n−1) than the number of content segments 122.
When a CPE 106 requests the content from the VOD server 105 via the network 101, the VOD server 105 utilizes the data file (not shown) created by the management process 106 to find the start 124 and end 126 points of the content segments 122, and the start 134 and end 136 points for the advertisement segments 132. The first content segment 122a is delivered to the user, and at its end point 126a, the VOD server 105 sends the first advertisement segment 132a. At the end point 136a of the first advertisement segment 132a, the VOD server 105 sends the second content segment 122b. At the end point 126b of the second content segment 122b, the second advertisement segment 132b is sent. This pattern continues until the last of the content segments 122n and/or the last of the advertisement segments 132x have been presented to the user. The user will receive a seamless content-plus-advertisement stream 140 comprised of the various segments 122a, 132a, 122b, 132b . . . 122n, 132x sent. It is recognized that the first segment sent to the user may comprise either the first advertisement or the first content segment, still utilizing the pattern outlined above.
Content and data storage within the previously described prior art VOD system requires high performance fiber channels or small computer system interface (SCSI) disks which have the disadvantages of being expensive and small in size (typically 15K RPM). In other words, the VOD system is a full complex, so the storage is tightly coupled to the streaming capabilities. The VOD complex controls the content once received, and thus disallows the multiple systems operator (MSO) to change the content stream in any way, except by providing a new content file. The foregoing approach also generally results in VOD server vendors (i.e., companies who provide and maintain VOD servers for MSO utilization) charging their clients (MSOs) comparatively high rates for storage and streaming of content at the VOD server.
In an nPVR system (and/or a start-over system), MSOs ingest a large quantities of content to the VOD servers for storage and streaming, so as to offer nPVR features (including e.g., start-over) on a variety of channels and/or for a variety of programs. Doing so quickly becomes exceedingly expensive. Further, given that start-over capabilities are made available on a channel-by-channel basis, a large portion of the content stored and available for streaming from the VOD server is often never requested, such as during times when there are fewer viewers (e.g., between 12 midnight and 6 am). Thus, in the present systems, even when content is not requested, it must still be sent to the VOD server as discussed above.
Other inefficiencies or undesirable aspects in these prior art systems lie in the fact that the MSO has no control over the content once ingested by the VOD server. In other words, the MSO is not able to “clean up” portions of the content which were imprecisely segmented or processed (discussed above), because the content is sent directly from the segmenting process to the VOD server. The MSO is also unable to insert advertisements or other secondary content different from those given to the VOD server in the advertisement playlist, or in a different order than presented therein.
Additionally, using the foregoing approach, the BMS 107 is loaded heavily by having to create all the metadata for the ingested content.
Hence, based on the foregoing, there is a need for improved apparatus and methods for efficiently making content available in an nPVR (and/or start-over) system via an on-demand or other network server. Such apparatus and methods would in one embodiment be adapted to store content locally, such as via larger and more cost effective (e.g., COTS) mass storage means. Local storage of content would also optionally provide mechanisms for the addition of secondary content, and other types of content manipulation (such as the aforementioned “clean up” or segmentation or other processing artifacts).
Additionally, such apparatus and methods would in one embodiment reduce the amount of content unnecessarily ingested to the streaming server, and provide more efficient and effective cataloging processes. Historical storage (e.g., storing content relating to past broadcasts for a period of time) would also be improved, thereby providing network users additional viewing options.